import subprocess
import sys
import time


def start_frpc():
    # 设置 frpc 客户端的路径和配置文件
    frpc_executable = '.\\frpc.exe'  # 假设 frpc 可执行文件在当前目录
    config_file = '.\\frpc.ini'  # 配置文件路径

    # 使用 subprocess 启动 frpc 客户端
    try:
        process = subprocess.Popen([frpc_executable, '-c', config_file],
                                   stdout=subprocess.PIPE,
                                   stderr=subprocess.PIPE,
                                   text=True,  # 使输出为字符串而不是字节
                                   bufsize=1,  # 行缓冲
                                   )

        # 实时打印输出
        while True:
            output = process.stdout.readline()
            if output:  # 如果有输出
                print(output, end='')  # 打印标准输出
            else:  # 如果没有输出，可能是进程已结束
                break

        # 打印标准错误
        stderr_output = process.stderr.read()
        if stderr_output:
            print(stderr_output, end='')

        process.stdout.close()
        process.stderr.close()
        process.wait()  # 等待进程结束

        if process.returncode == 0:
            print("frpc 启动成功")
        else:
            print("frpc 启动失败，返回码:", process.returncode)

    except Exception as e:
        print(f"启动 frpc 时发生错误: {e}")


if __name__ == '__main__':
    start_frpc()